package cn.com.customer.manager.adapter

/**
 * ============================================
 * 文件名：BasePagerAdapter.kt
 * 作者：lenovo
 * 日期：2018-01-26 16:26
 * 更新：2018-01-26 16:26
 * 描述：ViewPager的通用适配器
 * 版本：1.0
 * 版权：Copyright (C) 2018 HISOFT HENAN CO. LTD.
 * ============================================
 */
class BasePagerAdapter(fm: androidx.fragment.app.FragmentManager, fragments: List<androidx.fragment.app.Fragment>, titles: Array<String>) : androidx.fragment.app.FragmentPagerAdapter(fm) {
    private val mList = fragments
    private val mTitles = titles

    /**
     * 初始化时，先判断fragments和titles的数量是否一样，否则抛出异常
     */
    init {
        if (fragments.size != titles.size) {
            throw RuntimeException("fragments的数量和titles的数量不相等！")
        }
    }

    /**
     * 获取Fragment
     */
    override fun getItem(position: Int): androidx.fragment.app.Fragment {
        return mList[position]
    }

    /**
     * 获取Titles
     */
    override fun getCount(): Int = mTitles.size

    /**
     * 设置标题，必须设置
     */
    override fun getPageTitle(position: Int): CharSequence {
        return mTitles[position % mTitles.size]
    }
}